C#中怎么把一个byte[] 转换成System.Array类型

来源:百度知道 编辑:UC知道 时间:2024/05/25 05:58:02
我用VB写了一个DLL。然后有个接口是Public Function DecryptString(ByRef EncryptByte() As Byte) As String。EncryptByte() 是一个长度不定的byte数组,然后我在C#里引用,然后就变成了DecryptString(ref System.Ayyay EncryptByte); 我怎么把我C#的byte[] buffer怎么转换成System.Ayyay类型然后传递给VB的DLL ByRef EncryptByte() As Byte)
using System.Linq; 没有这个命令空间

错误 1 命名空间“System”中不存在类型或命名空间名称“Linq”(是缺少程序集引用吗?) D:\Work\CSHarpApp\CSHarpApp\Form2.cs 8 14 CSHarpApp
Array b = a.ToArray<byte>(); OK? :a都没定义 怎么出来个a.天上掉下来的吗? 就算a是byte[] 但是他没有ToArray<byte>()这个方法

原型是:
byte[] buffer = Convert.FromBase64String(output);
怎么把这个buffer 转换成System.Array的变量

错误 3 参数“1”: 无法从“ref System.Collections.ArrayList”转换为“ref System.Array” D:\Work\CSHarpApp\CSHarpApp\Form2.cs 55 62 CSHarpApp

强转
Array a=(Array)buffer ;

又有人给我送分咯 呵呵
Byte[] buffer = System.Text.Encoding.UTF8.GetBytes("input");
int length=buffer.Length;
Array para = Array.CreateInstance(typeof(Byte), length);
for (int i = 0; i < buffer.Length; i++)
{
para.SetValue(buffer[i], i);
}

测试通过了

直接复制。保证能用!

byte[] buffer = Convert.FromBase64String(output);
Array array;
int index = 0;
foreach (byte byteTemp in buffer) {
array.SetValue(byteTemp, index);
index++;
}

测试完全没问题哦!

是System.Array!
遍历byte[]数组,然后一个一个放到Array里面
using System.Linq;
Array b = a.ToArray<byte>(); OK?

把Array转为Byte
返回后再转为Array
Convert肯定不行
要用循环

是System.Array吧?
遍历byte[]数组,然后一个一个放到Array里面
不可以吗?